H.Ec(function(a) {
    function b(a) {
        var b = this.B;
        b.cd = [];
        if (this.Zd) for (var c in this.Zd) if (! (0 == c.indexOf("vector_") && !this.oB() || 0 == c.indexOf("tile_") && this.oB())) {
            var i = this.Zd[c],
            j;
            for (j in i) {
                var n = i[j];
                if (! (n.ae > this.ha() || n.Zc < this.ha())) {
                    var q = this.$a(n.V());
                    q.x < this[y] && q.y < this[A] && a[ia] < q.x + n.gk[1] && (a[ia] > q.x - n.gk[3] && a[ja] > q.y - n.gk[0] && a[ja] < q.y + n.gk[2]) && b.cd.push(n)
                }
            }
        }
    }
    function c() {
        a.B.es && 0 < a.B.cd[w] ? (a.platform.style.cursor = "pointer", a.B.es = l) : (a.B.cd = [], a.platform.style.cursor = a.J.rb)
    }
    a.B.uj = new Kb("", {
        Y: new P(15, -3),
        Kh: {
            border: "1px solid #aaa",
            background: "#fffec2",
            whiteSpace: "nowrap",
            font: "12px " + J.fontFamily,
            mozBoxShadow: "1px 2px 6px #666",
            webkitBoxShadow: "1px 2px 6px #666",
            boxShadow: "1px 2px 6px #666",
            padding: "2px 4px"
        }
    });
    a[B]("mousemove", 
    function(c) {
        if (! (c.ya && !(c.ya instanceof Fb) || c.cb)) {
            var e = this.B,
            g = e.cd.slice(0);
            b.call(this, c);
            for (var i = e.cd.slice(0), j = 0; j < g[w]; j++) for (var n = 0; n < i[w]; n++) g[j] === i[n] && (g.splice(j, 1), j--, i.splice(n, 1), n--);
            if (0 < g[w]) {
                var q = new Q("onhotspotout");
                q.spots = g.slice(0);
                this.dispatchEvent(q)
            }
            if (0 == e.cd[w]) this.platform.style.cursor != this.J.rb && (this.platform.style.cursor = this.J.rb),
            e.Jh && (clearTimeout(e.Jh), e.Jh = k),
            e.wp = setTimeout(function() {
                e.uj.G()
            },
            400);
            else if (0 < i[w] && (this.platform.style.cursor = "pointer", q = new Q("onhotspotover"), q.spots = i.slice(0), this.dispatchEvent(q), e.Jh && (clearTimeout(e.Jh), e.Jh = k), e.wp && (clearTimeout(e.wp), e.wp = k), q.spots[0].Go())) e.Jh = setTimeout(function() {
                e.uj.ac(q.spots[0].Go());
                e.uj.ca(c.N);
                e.uj.show();
                a.Ha(e.uj)
            },
            400)
        }
    });
    a[B]("clickex", 
    function(a) {
        var c = this.B;
        a.overlay || (0 == c.cd[w] && b.call(this, a), 0 < c.cd[w] && (a = new Q("onhotspotclick"), a.spots = c.cd.slice(0), a.spots.sort(function(a, b) {
            return a.V().lat - b.V().lat
        }), this.dispatchEvent(a), c.cd[w] = 0))
    });
    a[B]("load", c);
    a[B]("moveend", c);
    a[B]("zoomend", c);
    a[B]("dragend", 
    function() {
        this.B.es = f
    })
});